/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upn.sigemfi.can.beans;

import edu.upn.sigemfi.can.bc.BancoDelegate;
import edu.upn.sigemfi.can.be.Banco;
import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Jhosep
 */
public class BancoController extends AbstractController{

    private BancoDelegate delegado;
    private Banco banco;

    private SelectItem[] bancosSI;

    public BancoController(){
        delegado = new BancoDelegate();
        banks();
        banks();
    }

    public SelectItem[] getBancosSI() {
        return bancosSI;
    }

    public void setBancosSI(SelectItem[] bancosSI) {
        this.bancosSI = bancosSI;
    }

     public void banks() {
        bancosSI = null;
        try {
            List<Banco> lista = delegado.listar();
            if (lista != null) {
                bancosSI = new SelectItem[lista.size()];
                int i = 0;

                for (Banco b : lista) {
                    bancosSI[i++] = new SelectItem(b, b.getNombreBanco());
                }
            } else {
                bancosSI = new SelectItem[1];
                bancosSI[0] = new SelectItem(null, "No existen Bancos ");
            }
        } catch (Exception e) {

        bancosSI = new SelectItem[1];
        bancosSI[0] = new SelectItem(null, "<<Hubo un error>>" + e.getMessage());
        }
    }

    

    public List<Banco> getBancos() {
        try {
            return delegado.listar();
        } catch (Exception e) {
            error(e.getMessage());
        }
        return null;
    }

    public String nuevo() {
        banco = new Banco();
        return "nuevo";
    }

    public String editar() {
        return "editarbanco";
    }

     public String registrar() {
        try {
            delegado.crear(banco);
            info("El banco se registró correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String actualizar() {
        try {
            delegado.editar(banco);
            info("El banco se actualizó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String eliminar() {
        try {
            delegado.eliminar(banco);
            info("El banco se eliminó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }


    public Banco getBanco() {
        return banco;
    }

    public void setBanco(Banco banco) {
        this.banco = banco;
    }

}
